package com.campuscarbooking.api.service;

import com.campuscarbooking.api.dto.BusScheduleDTO;
import com.campuscarbooking.api.dto.PageResponse;
import com.campuscarbooking.api.model.BusSchedule;

public interface BusScheduleService {

    /**
     * 获取班车时刻表
     * @param routeDirection 路线方向
     * @param isFixed 是否固定班车
     * @param page 页码
     * @param pageSize 每页大小
     * @return 班车时刻表分页数据
     */
    PageResponse<BusScheduleDTO> getSchedules(
            BusSchedule.RouteDirection routeDirection,
            Boolean isFixed,
            int page,
            int pageSize);

    /**
     * 获取班车详情
     * @param id 班车ID
     * @return 班车详情
     */
    BusScheduleDTO getScheduleById(Long id);

    /**
     * 创建班车
     * @param busScheduleDTO 班车信息
     * @return 创建后的班车信息
     */
    BusScheduleDTO createSchedule(BusScheduleDTO busScheduleDTO);

    /**
     * 更新班车
     * @param id 班车ID
     * @param busScheduleDTO 班车信息
     * @return 更新后的班车信息
     */
    BusScheduleDTO updateSchedule(Long id, BusScheduleDTO busScheduleDTO);

    /**
     * 删除班车
     * @param id 班车ID
     */
    void deleteSchedule(Long id);
} 